<?php

	/*
	*	路由类，搭配.htaccess文件重定向来使用
	*	@构造函数中将REQUEST_URI改变成数组
	*	@getController		从解析出的url数组中获取控制器信息
	*	@getMethod			从解析出的url数组中获取需要调用的方法信息
	*						在解析出方法的时候会同时解析是否含有方法需要的参数
	*	@getPara			获取对应方法的参数
	*/
	
	
	class Router {
		
		private $urlList;
		
		private $controllerName;
		
		private $methodName;
		
		private $para;
		
		
		public function __construct() {
			
			$this->urlList = explode('/', $_SERVER['REQUEST_URI']);
			
		}
		
		
		//	加载文件
		public function loadFile() {
			
			$this->parseUrl();
			
			include(CTRL_PATH . $this->controllerName . '.php');

			$this->exeMethod();
			
		}
		
		
		//	执行方法
		public function exeMethod() {
			
			$handle = new $this->controllerName();
			
			$methodName = $this->methodName;
			
			if(isset($this->para) && !empty($this->para)) {
				
				$handle->$methodName($this->para);
				
			} else {
				
				$handle->$methodName();
				
			}
			
		}
		
		
		//	解析出控制器和要调用的方法
		public function parseUrl() {
			
			$this->controllerName = ucfirst($this->urlList[1]) . 'Ctrl';
			
			$this->methodName = $this->urlList[2];
			
			$flag = strpos($this->methodName, '?');
			
			if($flag) {
				
				$tmp = explode('?', $this->methodName);
				
				$this->methodName = $tmp[0];
				
				$this->para = $tmp[1];
				
			}

		}
		
	}
	
?>